package com.smartleanx.module.hrm.controller.admin.employee.regularizerecord;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 转正记录新增/修改 Request VO")
@Data
public class EmployeeRegularizeRecordSaveReqVO {

    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9110")
    private Long id;

    @Schema(description = "员工id", requiredMode = Schema.RequiredMode.REQUIRED, example = "7386")
    private Long employeeId;

    @Schema(description = "入职日期")
    @NotNull(message = "入职日期不能为空")
    private LocalDateTime entryTime;

    @Schema(description = "转正日期")
    private LocalDateTime regularizationTime;

    @Schema(description = "计划转正日期")
    private LocalDateTime planRegularizationTime;

    @Schema(description = "原员工状态")
    private Integer oldEmployeeState;

    @Schema(description = "对本岗位的理解")
    private String jobUnderstand;

    @Schema(description = "试用期工作总结")
    private String workSummary;

    @Schema(description = "未来工作方向和目标")
    private String directionGoals;

    @Schema(description = "审核结果")
    private Integer approveResult;

    @Schema(description = "审核流程实例的编号", example = "22155")
    private String approveProcessInstanceId;

    @Schema(description = "备注")
    private String remarks;

    @Schema(description = "试用期考核文件id列表")
    private List<Long> probationFileIdList;

    @Schema(description = "其他文件id列表")
    private List<Long> otherFileIdList;

    /**
     * 记录提交类型
     * <p>
     * 枚举 {@link com.smartleanx.module.hrm.eums.employee.EmployeeRecordTypeEnum}
     */
    @Schema(description = "记录提交类型")
    private Integer createType;

}
